package com.xyazm.order.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.xyazm.common.dao.BaseDAO;
import com.xyazm.order.domain.entity.OrderItemDO;
import com.xyazm.order.mapper.OrderItemMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 订单条目表
 * @author xuyou
 * @date 2022年05月14日 22:46
 */
@Repository
@Slf4j
public class OrderItemDAO extends BaseDAO<OrderItemMapper, OrderItemDO> {

    /**
     * 根据订单号查询订单条目
     * @param orderId
     * @return
     */
    public List<OrderItemDO> listByOrderId(String orderId) {
        LambdaQueryWrapper<OrderItemDO> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(OrderItemDO::getOrderId, orderId);
        return list(queryWrapper);
    }


    /**
     * 根据订单号和商品编码查询订单条目信息
     * @author xuyou
     * 2022/7/19 0019 22:02
     * @param orderId
     * @param skuCode
    */
    public OrderItemDO getOrderItemByOrderIdAndSkuCode(String orderId, String skuCode) {
        LambdaQueryWrapper<OrderItemDO> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(OrderItemDO::getOrderId, orderId)
                .eq(OrderItemDO::getSkuCode, skuCode);
        return getOne(queryWrapper);
    }

    /**
     * 根据订单号和skuId查询订单条目
     *
     * @return
     */
    public OrderItemDO getOrderIdAndSkuCode(String orderId, String skuId) {
        LambdaQueryWrapper<OrderItemDO> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(OrderItemDO::getOrderId, orderId)
                .eq(OrderItemDO::getSkuCode, skuId);
        return getOne(queryWrapper);
    }
}
